<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // unique 每次拿当前i和newArr每项比 每次newArr新增的是数组的第一个重复项
        function unique(arr){
            let newArr = [];
            for (var index = 0; index < arr.length; index++) {
                var isRepeat = false;
                for (let jndex = 0; jndex < newArr.length; jndex++) {
                    if(arr[index] === newArr[jndex]){
                        isRepeat = true;
                        break;
                    }
                }
                if(!isRepeat){
                    newArr.push(this[index])
                }
            }
            return newArr;
        }
        // 每次拿当前值和当前值之后的值比  有重复的就不添加没重复的添加 每次newArr新增的是数组的最后一个重复项
        function unique2(arr){
            let newArr = [];
            for (let index = 0; index < arr.length; index++) {
                let isRepeat = false;
                for (let jndex = ++index; jndex < arr.length; jndex++) {
                    if(arr[index] === arr[jndex]){
                        isRepeat = true;
                        break;
                    }
                }
                if(!isRepeat){
                    newArr.push(arr[index]);
                }
            }
            return newArr;
        }
        // 借用indexOf indexOf 返回的值是第一次出现的下标, 所以当重复时, indexOf返回的是第一次下标, index当前为真实下标
        function uniqueIndexOf(arr){
            return arr.filter((item, index) => arr.indexOf(item) === index);
        }
        function uniqueMap(arr){
            const map = new Map();
            return arr.filter(
                item => map.has(item) ? false : (map.set(item, 1))
            )
        }
        function uniqueSet(arr){
            return [...new Set(arr)];
        }
        const arr = [];
        // 生成[0, 100000]之间的随机数
        for (let i = 0; i < 100000; i++) {
            arr.push(0 + Math.floor((100000 - 0 + 1) * Math.random()))
        }
        console.time('test');
        uniqueMap(arr);
        console.timeEnd('test');
        for (let index = 0; index < 15; index++) {
            if(index === 5){
                // break;
                continue;
            }else{
                console.log(index);
            }
        }
    </script>
</body>
</html>